home *** CD-ROM | disk | FTP | other *** search
- from Tkinter import *
-
- # some vocabulary to keep from getting confused. This terminology
- # is something I cooked up for this file, but follows the man pages
- # pretty closely
- #
- #
- #
- # This is a MENUBUTTON
- # V
- # +-------------+
- # | |
- #
- # +------------++------------++------------+
- # | || || |
- # | File || Edit || Options | <-------- the MENUBAR
- # | || || |
- # +------------++------------++------------+
- # | New... |
- # | Open... |
- # | Print |
- # | | <-------- This is a MENU. The lines of text in the menu are
- # | | MENU ENTRIES
- # | +---------------+
- # | Open Files > | file1 |
- # | | file2 |
- # | | another file | <------ this cascading part is also a MENU
- # +----------------| |
- # | |
- # | |
- # | |
- # +---------------+
-
-
-
- def new_file():
- print "opening new file"
-
-
- def open_file():
- print "opening OLD file"
-
-
- def makeFileMenu():
- # make menu button : "File"
- File_button = Menubutton(mBar, {'text': 'File',
- 'underline': 0,
- Pack: {'side': 'left',
- 'padx': '1m'}})
-
- # make the pulldown part of the File menu. The parameter passed is the master.
- # we attach it to the File button as a python attribute called "menu" by convention.
- # hopefully this isn't too confusing...
- File_button.menu = Menu(File_button)
-
- # add an item. The first param is a menu entry type,
- # must be one of: "cascade", "checkbutton", "command", "radiobutton", "seperator"
- # see menu-demo-2.py for examples of use
- File_button.menu.add('command', {'label': 'New...',
- 'underline': 0,
- 'command' : new_file})
-
-
- File_button.menu.add('command', {'label': 'Open...',
- 'underline': 0,
- 'command' : open_file})
-
- File_button.menu.add('command', {'label': 'Quit',
- 'underline': 0,
- 'command': 'exit'})
-
-
- # set up a pointer from the file menubutton back to the file menu
- File_button['menu'] = File_button.menu
-
- return File_button
-
-
-
- def makeEditMenu():
- Edit_button = Menubutton(mBar, {'text': 'Edit',
- 'underline': 0,
- Pack: {'side': 'left',
- 'padx' : '1m'}})
- Edit_button.menu = Menu(Edit_button)
-
- # just to be cute, let's disable the undo option:
- Edit_button.menu.add('command', {"label" : "Undo"} )
- # undo is the 0th entry...
- Edit_button.menu.entryconfig(0, {"state" : "disabled"})
-
- # and these are just for show. No "command" callbacks attached.
- Edit_button.menu.add('command', {"label" : "Cut"} )
- Edit_button.menu.add('command', {"label" : "Copy"} )
- Edit_button.menu.add('command', {"label" : "Paste"} )
-
- # set up a pointer from the file menubutton back to the file menu
- Edit_button['menu'] = Edit_button.menu
-
- return Edit_button
-
-
- #################################################
-
- #### Main starts here ...
- root = Tk()
-
-
- # make a menu bar
- mBar = Frame(root, {'relief': 'raised',
- 'bd': 2,
- Pack: {'side': 'top',
- 'fill': 'x'}})
-
- File_button = makeFileMenu()
- Edit_button = makeEditMenu()
-
- # finally, install the buttons in the menu bar.
- # This allows for scanning from one menubutton to the next.
- mBar.tk_menuBar(File_button, Edit_button)
-
-
- root.title('menu demo')
- root.iconname('packer')
-
- root.mainloop()
-
-
-
-
-
-
-